package uy.org.softtech.cssuite.excepciones;

import org.springframework.ws.soap.server.endpoint.annotation.FaultCode;
import org.springframework.ws.soap.server.endpoint.annotation.SoapFault;

import uy.org.softtech.cssuite.core.Excepcion;

/**
 * Excepcion a ser lanzada cuando ocurre un error en alguno de los servicios web publicados.
 * La misma se transforma en un mensaje SOAP Fault con la siguiente estructura.
 * 
 * <pre>
 * &lt;SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope">
 * 	&lt;SOAP-ENV:Body>
 * 		&lt;SOAP-ENV:Fault>
 * 			&lt;SOAP-ENV:faultcode>SOAP-ENV:Server&lt;/SOAP-ENV:faultcode>
 * 			&lt;SOAP-ENV:faultstring>Mensaje&lt;/SOAP-ENV:faultstring>
 * 		&lt;/SOAP-ENV>
 * 	&lt;/SOAP-ENV>
 * &lt;/SOAP-ENV>
 * </pre> 
 * 
 * @author fabian.lobo
 */
@SoapFault(faultCode = FaultCode.SERVER)
public class ServicioWebException extends Excepcion {

	private static final long serialVersionUID = -3252842003346666531L;
	
	/**
	 * Constructor que inicializa la excepcion con un mensaje por defecto.
	 *
	 * @author fabian.lobo
	 */
	public ServicioWebException() {
		super(Codigo.ERROR_WEBSERVICE, "Error al tratar de responder la solicitud a un servicio web.");
	}
	
	/**
	 * Constructor que inicializa la excepcion con un mensaje dado.
	 *
	 * @param mensaje - Mensaje a ser mostraro al cliente SOAP
	 * @author fabian.lobo
	 */
	public ServicioWebException(String mensaje) {
		super(Codigo.ERROR_WEBSERVICE, mensaje);
	}

}
